Example usage for org.apache.commons.vfs FileObject resolveFile

List of usage examples for org.apache.commons.vfs FileObject resolveFile

Introduction

In this page you can find the example usage for org.apache.commons.vfs FileObject resolveFile.

Prototype

public FileObject resolveFile(String path) throws FileSystemException;

Source Link

Document

Finds a file, relative to this file.

Usage

From source file:org.codehaus.mojo.unix.maven.deb.DebUnixPackage.java

public void packageToFile(File packageFile, ScriptUtil.Strategy strategy) throws Exception {
    FileObject fsRoot = fileCollector.getFsRoot();
    FileObject debian = fsRoot.resolveFile("DEBIAN");
    FileObject controlFilePath = debian.resolveFile("control");

    debian.createFolder();/* www  .j  a  v a 2  s .  c  o  m*/
    LineStreamUtil.toFile(controlFile.toList(), asFile(controlFilePath));

    fileCollector.collect();

    ScriptUtil.Result result = scriptUtil
            .createExecution(controlFile.packageName, "deb", getScripts(), asFile(debian), strategy).execute();

    UnixUtil.chmodIf(result.preInstall, "0755");
    UnixUtil.chmodIf(result.postInstall, "0755");
    UnixUtil.chmodIf(result.preRemove, "0755");
    UnixUtil.chmodIf(result.postRemove, "0755");

    new Dpkg().setDebug(debug).setPackageRoot(asFile(fsRoot)).setDebFile(packageFile)
            .setUseFakeroot(useFakeroot).execute();
}

From source file:org.codehaus.mojo.unix.maven.deb.DebUnixPackageTest.java

public void testBasic() throws Exception {
    if (!Dpkg.available()) {
        return;//from   w w w.  j a va  2s  . c  om
    }

    DebPackagingFormat packagingFormat = (DebPackagingFormat) lookup(PackagingFormat.ROLE, "deb");

    FileObject dpkgTest = VFS.getManager().resolveFile(getTestPath("target/deb-test"));
    FileObject packageRoot = dpkgTest.resolveFile("root");
    File packageFile = VfsUtil.asFile(dpkgTest.resolveFile("file.deb"));

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

    List<String> nil = List.nil();
    packagingFormat.start().parameters(parameters)
            .debParameters(Option.<String>none(), some("devel"), false, nil, nil, nil, nil, nil, nil)
            .debug(true).workingDirectory(packageRoot).packageToFile(packageFile, ScriptUtil.Strategy.SINGLE);

    assertTrue(packageFile.canRead());
}

From source file:org.codehaus.mojo.unix.maven.MojoHelper.java

public static Execution create(Map platforms, String platformType, Map formats, String formatType,
        SnapshotTransformation snapshotTransformation, MavenProjectWrapper project, boolean debug,
        boolean attachedMode,
        F<UnixPackage, UnixPackage> validateMojoSettingsAndApplyFormatSpecificSettingsToPackage,
        PackagingMojoParameters mojoParameters, final Log log)
        throws MojoFailureException, MojoExecutionException {
    MavenCommonLoggingLogFactory.setMavenLogger(log);

    PackagingFormat format = (PackagingFormat) formats.get(formatType);

    if (format == null) {
        throw new MojoFailureException("INTERNAL ERROR: could not find format: '" + formatType + "'.");
    }//from   w w  w. ja  v  a  2 s  . com

    UnixPlatform platform = (UnixPlatform) platforms.get(platformType);

    if (platform == null) {
        throw new MojoFailureException("INTERNAL ERROR: could not find platform: '" + platformType + "'.");
    }

    // TODO: This is using a private Maven API that might change. Perhaps use some reflection magic here.
    String timestamp = snapshotTransformation.getDeploymentTimestamp();

    FileObject buildDirectory;

    try {
        FileSystemManager fileSystemManager = VFS.getManager();

        buildDirectory = fileSystemManager.resolveFile(project.buildDirectory.getAbsolutePath());
    } catch (FileSystemException e) {
        throw new MojoExecutionException("Error while initializing Commons VFS", e);
    }

    PackageVersion version = PackageVersion.packageVersion(project.version, timestamp,
            project.artifact.isSnapshot(), mojoParameters.revision);

    List<P3<UnixPackage, Package, List<AssemblyOperation>>> packages = nil();

    for (Package pakke : validatePackages(mojoParameters.packages, attachedMode)) {
        try {
            String name = "unix/root-" + formatType + pakke.classifier.map(dashString).orSome("");

            FileObject packageRoot = buildDirectory.resolveFile(name);
            packageRoot.createFolder();

            PackageParameters parameters = calculatePackageParameters(project, version, platform,
                    mojoParameters, pakke);

            UnixPackage unixPackage = format.start().parameters(parameters).setVersion(version). // TODO: This should go away
                    workingDirectory(packageRoot).debug(debug).basedir(project.basedir);

            // -----------------------------------------------------------------------
            // Let the implementation add its metadata
            // -----------------------------------------------------------------------

            unixPackage = validateMojoSettingsAndApplyFormatSpecificSettingsToPackage.f(unixPackage);

            // TODO: here the logic should be different if many packages are to be created.
            // Example: name should be taken from mojoParameters if there is only a single package, if not
            //          it should come from the Pakke object. This should also be validated, at least for
            //          name

            List<AssemblyOperation> assemblyOperations = createAssemblyOperations(project, parameters,
                    unixPackage, project.basedir, buildDirectory, mojoParameters.assembly, pakke.assembly);

            // -----------------------------------------------------------------------
            // Dump the execution
            // -----------------------------------------------------------------------

            if (debug) {
                log.info("=======================================================================");
                log.info("Package parameters: " + parameters.id);
                log.info("Default file attributes: ");
                log.info(" File      : " + parameters.defaultFileAttributes);
                log.info(" Directory : " + parameters.defaultDirectoryAttributes);

                log.info("Assembly operations: ");
                for (AssemblyOperation operation : assemblyOperations) {
                    operation.streamTo(new AbstractLineStreamWriter() {
                        protected void onLine(String line) {
                            log.info(line);
                        }
                    });
                }
            }

            packages = packages.cons(p(unixPackage, pakke, assemblyOperations));
        } catch (UnknownArtifactException e) {
            Map map = new TreeMap<String, Artifact>(e.artifactMap);

            // TODO: Do not log here, throw a CouldNotFindArtifactException with the map as an argument
            log.warn("Could not find artifact:" + e.artifact);
            log.warn("Available artifacts:");
            for (Object o : map.keySet()) {
                log.warn(o.toString());
            }

            throw new MojoFailureException(
                    "Unable to find artifact: '" + e.artifact + "'. See log for available artifacts.");
        } catch (MissingSettingException e) {
            String msg = "Missing required setting '" + e.getSetting() + "'";
            if (!pakke.classifier.isNone()) {
                msg += ", for '" + pakke.classifier.some() + "'";
            }
            msg += ", format '" + formatType + "'.";
            throw new MojoFailureException(msg);
        } catch (IOException e) {
            throw new MojoExecutionException(
                    "Error creating package '" + pakke.classifier + "', format '" + formatType + "'.", e);
        }
    }

    return new Execution(packages, project, formatType, attachedMode);
}

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

public void testBasic() throws Exception {
    if (!Rpmbuild.available()) {
        return;/*from w  ww. jav a  2  s.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.codehaus.mojo.unix.util.vfs.IncludeExcludeTest.java

public void testBasic() throws Exception {
    String myProjectPath = new TestUtil(this).getTestPath("src/test/resources/my-project");

    FileSystemManager fsManager = VFS.getManager();
    FileObject myProject = fsManager.resolveFile(myProjectPath);

    assertEquals(FileType.FOLDER, myProject.getType());

    List<FileObject> selection = new ArrayList<FileObject>();
    myProject.findFiles(IncludeExcludeFileSelector.build(myProject.getName())
            .addInclude(new PathExpression("/src/main/unix/files/**")).addInclude(new PathExpression("*.java"))
            .addExclude(new PathExpression("**/huge-file")).filesOnly().
            //            noDefaultExcludes().
            create(), true, selection);/*from   w w  w  . ja  v  a  2 s .  c  o  m*/

    System.out.println("Included:");
    for (FileObject fileObject : selection) {
        System.out.println(myProject.getName().getRelativeName(fileObject.getName()));
    }

    assertEquals(2, selection.size());
    assertTrue(selection.contains(myProject.resolveFile("src/main/unix/files/opt/comp/myapp/etc/myapp.conf")));
    assertTrue(selection.contains(myProject.resolveFile("Included.java")));
}

From source file:org.docx4all.ui.menu.FileMenu.java

@Action
public void newFile() {
    Preferences prefs = Preferences.userNodeForPackage(getClass());
    WordMLEditor editor = WordMLEditor.getInstance(WordMLEditor.class);

    FileObject fo = null;
    try {/*  w  w  w  .  j av a2  s. c  o m*/
        //Prepare the new file name
        StringBuffer newFile = new StringBuffer();
        newFile.append(editor.getUntitledFileName());
        newFile.append(++_untitledFileNumber);
        newFile.append(".docx");

        //put new file in same directory as last opened local file's.
        //if there isn't last opened local file, put it in the
        //swing file chooser's default directory.
        String lastFile = prefs.get(Constants.LAST_OPENED_LOCAL_FILE, Constants.EMPTY_STRING);
        if (lastFile.length() == 0) {
            fo = VFSUtils.getFileSystemManager()
                    .toFileObject(FileSystemView.getFileSystemView().getDefaultDirectory());
        } else {
            fo = VFSUtils.getFileSystemManager().resolveFile(lastFile).getParent();
        }
        fo = fo.resolveFile(newFile.toString());

    } catch (FileSystemException exc) {
        exc.printStackTrace();
        ResourceMap rm = editor.getContext().getResourceMap(getClass());
        String title = rm.getString(FileMenu.NEW_FILE_ACTION_NAME + ".Action.text");
        String message = rm.getString(FileMenu.NEW_FILE_ACTION_NAME + ".Action.errorMessage");
        editor.showMessageDialog(title, message, JOptionPane.INFORMATION_MESSAGE);
        return;
    }

    editor.createInternalFrame(fo);
}

From source file:org.efaps.webdav4vfs.test.AbstractDavTestCase.java

@BeforeMethod()
public void setUp() throws Exception {
    FileSystemManager fsm = VFS.getManager();
    FileObject fsRoot = fsm.createVirtualFileSystem(fsm.resolveFile("ram:/"));
    this.aFile = fsRoot.resolveFile("/file.txt");
    this.aFile.delete();
    this.aFile.createFile();
    this.aDirectory = fsRoot.resolveFile("/folder");
    this.aDirectory.delete();
    this.aDirectory.createFolder();
}

From source file:org.jahia.configuration.configurators.VFSConfigFile.java

public VFSConfigFile(FileObject parentFileObject, String path) throws FileSystemException {
    this.fileObject = parentFileObject.resolveFile(path);
}

From source file:org.jboss.dashboard.ui.components.FileNavigationHandler.java

public CommandResponse actionUploadFile(CommandRequest request) throws IOException {
    if (uploadFileAllowed || getUserStatus().isRootUser()) {
        FileObject currentDir = getCurrentDir();
        if (currentDir != null && currentDir.isWriteable()) {
            File file = (File) request.getFilesByParamName().get("file");
            if (file != null) {
                String fileName = file.getName();
                FileObject fileObject = currentDir.resolveFile(fileName);
                if (!fileObject.exists()) {
                    fileObject.createFile();
                    OutputStream os = fileObject.getContent().getOutputStream(true);
                    InputStream is = new BufferedInputStream(new FileInputStream(file));
                    IOUtils.copy(is, os);
                    is.close();/* w ww.java  2s .  c  o m*/
                    os.close();
                    currentFilePath = fileObject.getName().getPath();
                    return getCommonResponse(request);
                } else {
                    //TODO: Deal with errors
                }
            }
        }
    }
    //TODO: Deal with permission error
    return getCommonResponse(request);
}

From source file:org.jclouds.vfs.provider.blobstore.test.BlobStoreProviderTestCase.java

private FileObject setUpTests(final FileSystemManager manager, String uri)
        throws FileSystemException, IOException {
    FileObject base = manager.resolveFile(uri);
    FileObject writeTests = base.resolveFile("write-tests");
    FileObject readTests = base.resolveFile("read-tests");

    if (base instanceof BlobStoreFileObject) {
        BlobStore blobStore = ((BlobStoreFileObject) base).getBlobStore();
        String container = ((BlobStoreFileObject) base).getContainer();
        blobStore.clearContainer(container);
    } else {/*  w  w w  .  ja  v  a  2  s.  c  om*/
        writeTests.delete(new AllFileSelector());
        readTests.delete(new AllFileSelector());
    }

    writeTests.createFolder();
    readTests.createFolder();
    for (String name : new String[] { "file1.txt", "file%25.txt", "file space.txt" }) {
        writeFile(readTests, name, FILE1_CONTENT);
    }
    writeFile(readTests, "empty.txt", "");
    FileObject dir = readTests.resolveFile("dir1");
    dir.createFolder();
    write3Files(dir);
    for (String subdirName : new String[] { "subdir1", "subdir2", "subdir3" }) {
        FileObject subdir = dir.resolveFile(subdirName);
        subdir.createFolder();
        write3Files(subdir);
    }
    return base;
}