Example usage for org.apache.commons.vfs2 FileObject getContent

List of usage examples for org.apache.commons.vfs2 FileObject getContent

Introduction

In this page you can find the example usage for org.apache.commons.vfs2 FileObject getContent.

Prototype

FileContent getContent() throws FileSystemException;

Source Link

Document

Returns this file's content.

Usage

From source file:de.innovationgate.wgpublisher.design.fs.FileSystemDesignProvider.java

public static void createDowngradeFiles(FileSystemDesignProvider originalDesignProvider, OverlayData data,
        FileObject targetFolder, String targetEncoding, Logger log) throws Exception {

    for (Map.Entry<String, ResourceData> resourceEntry : data.getOverlayResources().entrySet()) {

        boolean changed = false;
        FileObject targetFile = targetFolder.resolveFile(resourceEntry.getKey());
        if (targetFile.exists()) {
            InputStream in = new BufferedInputStream(targetFile.getContent().getInputStream(), 4096);
            MD5HashingOutputStream out = new MD5HashingOutputStream(new NullOutputStream());
            resourceInToOut(in, targetEncoding, out, targetEncoding);
            if (!out.getHash().equals(resourceEntry.getValue().getMd5Hash())) {
                changed = true;/*w  w w .  ja va2s.c o  m*/
            }
        } else {
            changed = true;
        }

        if (changed == true) {
            String basePath = getOverlayResourcePathInBaseDesign(resourceEntry.getKey());
            FileObject sourceFile = originalDesignProvider.getBaseFolder().resolveFile(basePath);
            if (sourceFile.exists()) {
                FileObject conflictFile = createConflictFile(targetFile);
                log.info("Writing downgrade file of modified overlay resource " + resourceEntry.getKey()
                        + " to conflict file: "
                        + targetFolder.getName().getRelativeName(conflictFile.getName()));
                InputStream in = new BufferedInputStream(sourceFile.getContent().getInputStream(), 4096);
                OutputStream out = new BufferedOutputStream(conflictFile.getContent().getOutputStream(), 4096);
                resourceInToOut(in, originalDesignProvider.getFileEncoding(), out, targetEncoding);
            } else {
                log.warn("Overlay resource '" + resourceEntry.getKey()
                        + "' does not exist any more in the current base design version.");
            }
        }

    }

}

From source file:de.innovationgate.wgpublisher.design.sync.FileContainerDeployment.java

public boolean isUpdated()
        throws InstantiationException, IllegalAccessException, IOException, WGDesignSyncException {

    FileObject metadataFile = getMetadataFile();
    if (metadataFile.exists() && metadataFile.getContent().getLastModifiedTime() != _timestampOfMetadataFile) {
        return true;
    }//ww  w.  j  ava  2  s . c o  m

    List<FileObject> files = getFileContainerFiles();
    Collections.sort(files, new FileNameComparator());

    FileObject file;
    List<String> existingFiles = new ArrayList<String>();

    // Check for new and updated files
    for (int i = 0; i < files.size(); i++) {
        file = (FileObject) files.get(i);
        if (isExcludedFileContainerFile(file)) {
            continue;
        }

        ContainerFile containerFile = getContainerFile(file);
        if (containerFile == null) {
            return true;
        } else if (existingFiles.contains(containerFile.getName().toLowerCase())) {

            // Possible on case-sensitive file systems. A file with same name and
            // different case has already been processed. Ignore this duplicate.
            issueWarning(file.getName().getPathDecoded());
            continue;
        } else {
            existingFiles.add(containerFile.getName().toLowerCase());
            if (containerFile.getTimestamp() != file.getContent().getLastModifiedTime()) {
                return true;
            }
        }
    }

    // Check for deleted files
    List<String> containerFiles = new ArrayList<String>(_files.keySet());
    containerFiles.removeAll(existingFiles);
    if (containerFiles.size() > 0) {
        return true;
    } else {
        return false;
    }

}

From source file:fulcrum.xml.Parser.java

/**
 * Only provides parsing functions to the "fulcrum.xml" package.
 * //from  w ww .  ja va2s  .  co m
 * @see Document
 * 
 * @param fileLocation
 * @param document
 * @throws ParseException
 */
protected void parse(String fileLocation, Document document) throws ParseException {
    FileObject fileObj = null;
    try {
        fileObj = fsManager.resolveFile(fileLocation);

        if (fileObj != null && fileObj.exists() && fileObj.isReadable()) {
            FileContent content = fileObj.getContent();
            InputStream is = content.getInputStream();
            int size = is.available();
            LOGGER.debug("Total File Size: " + size + " bytes");
            byte[] buffer = new byte[size];
            is.read(buffer, 0, size);
            LOGGER.debug("Start parsing");
            parse(buffer, document);
            LOGGER.debug("Finished paring");
            buffer = null;
            content.close();
            fileObj.close();
        }
    } catch (Exception e) {
        throw new ParseException(e);
    }
}

From source file:com.msopentech.odatajclient.testservice.utils.FSManager.java

public FileObject putInMemory(final InputStream is, final String path) throws IOException {
    final FileObject memObject = fsManager.resolveFile(MEM_PREFIX + path);

    if (memObject.exists()) {
        memObject.delete();/*from  w  w  w  .j  a  v a 2 s  .c  o  m*/
    }

    // create in-memory file
    memObject.createFile();

    // read in-memory content
    final OutputStream os = memObject.getContent().getOutputStream();
    IOUtils.copy(is, os);
    IOUtils.closeQuietly(is);
    IOUtils.closeQuietly(os);

    return memObject;
}

From source file:de.innovationgate.wgpublisher.design.sync.DesignDeployment.java

@Override
protected void createMetadataFile(FileObject metadataFile) throws InstantiationException,
        IllegalAccessException, UnsupportedEncodingException, FileSystemException, IOException {
    super.createMetadataFile(metadataFile);
    _timestampOfMetadataFile = metadataFile.getContent().getLastModifiedTime();
}

From source file:de.blizzy.backup.vfs.RemoteFileOrFolder.java

private FileContent getFileContent() throws IOException {
    if (fileContent == null) {
        final FileObject fileObject = getFileObject();
        IAction<FileContent> action = new IAction<FileContent>() {
            @Override/*from www  .  j  a v  a 2s .  c  o m*/
            public FileContent run() throws IOException {
                return fileObject.getContent();
            }

            @Override
            public boolean canRetry(IOException e) {
                return location.canRetryAction(e);
            }
        };
        fileContent = new ActionRunner<>(action, RemoteLocation.MAX_TRIES, location).run();
    }
    return fileContent;
}

From source file:de.innovationgate.wgpublisher.design.sync.FileContainerDeployment.java

public void resetUpdateInformation()
        throws InstantiationException, IllegalAccessException, IOException, WGDesignSyncException {

    FileObject folder = getCodeFile();
    Map files = new HashMap();
    FileObject[] folderFiles = folder.getChildren();
    FileObject folderFile;//from  w  ww  . j a  v a2 s.  com
    for (int i = 0; i < folderFiles.length; i++) {

        folderFile = folderFiles[i];
        if (isExcludedFileContainerFile(folderFile)) {
            continue;
        }

        ContainerFile containerFile = new ContainerFile(folderFile);
        files.put(containerFile.getName(), containerFile);
    }
    _files = files;

    FileObject metadataFile = getMetadataFile();
    if (metadataFile.exists()) {
        _timestampOfMetadataFile = metadataFile.getContent().getLastModifiedTime();
    }

}

From source file:com.carrotgarden.nexus.example.script.ScriptStorageImpl.java

private void updateScript(final FileObject file) {

    final FileName name = file.getName();

    log.info("New script file found: " + name);

    String script;//from w w  w  . j  av  a  2s  .c  o m

    try {

        final FileContent content = file.getContent();

        script = IOUtil.toString(content.getInputStream());

        content.close();

    } catch (final IOException e) {

        log.warn("Unable to read script file: " + name, e);

        return;

    }

    synchronized (scriptStore) {
        scriptStore.put(getName(name), script);
    }

}

From source file:de.innovationgate.wgpublisher.design.fs.FileSystemDesignProvider.java

public static boolean upgradeOverlay(FileSystemDesignProvider originalDesignProvider, PluginID baseId,
        OverlayStatus status, FileObject targetFolder, String targetEncoding, Logger log,
        DesignFileValidator validator) throws Exception {

    if (!status.isUpdatedBaseDesign() && !status.isNewOverlay()) {
        throw new WGDesignSyncException(
                "Used base plugin is no higher version than overlay compliance version. Cannot perform upgrade");
    }//ww  w. ja v a 2s.co m

    if (status.isNewOverlay()) {
        log.info("Initializing empty overlay");
    } else {
        log.info("Upgrading overlay from base design version " + status.getCompliantBaseVersion() + " to "
                + status.getCurrentBaseVersion());
    }

    // Creating new folders (Done separately because there may be empty folders in the overlay which would not be created via resource changes)
    for (String folder : status.getNewFolders()) {
        FileObject targetFile = targetFolder.resolveFile(folder);
        if (!targetFile.exists()) {
            log.info("Adding new overlay folder "
                    + targetFolder.getName().getRelativeName(targetFile.getName()));
            targetFile.createFolder();
        }
    }

    // Perform resource changes
    boolean conflictFileCreated = false;
    for (ChangedDocument resource : status.getChangedDocuments().values()) {
        if (performChange(resource, originalDesignProvider, status, targetEncoding, targetFolder, log,
                validator)) {
            conflictFileCreated = true;
        }
    }

    // Overwrite plugin version
    status.getOverlayData().setBasepluginVersion(baseId.getVersion().toString());

    // Write new overlay data file
    FileObject targetFCFolder = targetFolder.resolveFile(DesignDirectory.FOLDERNAME_FILES);
    FileObject systemFC = targetFCFolder.resolveFile("system");
    FileObject overlayDataFile = systemFC.resolveFile(OverlayDesignProvider.OVERLAY_DATA_FILE);
    OutputStream out = new BufferedOutputStream(overlayDataFile.getContent().getOutputStream(false));
    status.getOverlayData().write(out);
    out.flush();
    out.close();

    // Eventually update base-csconfig.xml
    FileObject baseCsConfigFile = originalDesignProvider.getFilesFolder().resolveFile("system/csconfig.xml");
    if (baseCsConfigFile.exists()) {
        String sourceHash = MD5HashingInputStream.getStreamHash(baseCsConfigFile.getContent().getInputStream());
        String targetHash = "";
        FileObject baseCsConfigFileOnOverlay = systemFC.resolveFile("base-csconfig.xml");
        if (baseCsConfigFileOnOverlay.exists()) {
            targetHash = MD5HashingInputStream
                    .getStreamHash(baseCsConfigFileOnOverlay.getContent().getInputStream());
        }
        if (!sourceHash.equals(targetHash)) {
            baseCsConfigFileOnOverlay.delete();
            FileUtil.copyContent(baseCsConfigFile, baseCsConfigFileOnOverlay);
        }
    }

    // Eventually update the dependency to the base plugin on csconfig.xml's plugin config
    FileObject overlayCsConfigFile = systemFC.resolveFile("csconfig.xml");
    if (overlayCsConfigFile.exists()) {
        CSConfig overlayCsConfig = CSConfig.load(overlayCsConfigFile);
        if (overlayCsConfig.getPluginConfig() != null) {
            boolean dependencyUpdated = false;
            for (PluginID id : overlayCsConfig.getPluginConfig().getDependencies()) {
                if (id.getUniqueName().equals(baseId.getUniqueName())
                        && !id.getVersion().equals(baseId.getVersion())) {
                    Version dependencyVersion = new Version(baseId.getVersion().getMajorVersion(),
                            baseId.getVersion().getMinorVersion(), baseId.getVersion().getMaintenanceVersion(),
                            baseId.getVersion().getPatchVersion(), 0);
                    id.setVersion(dependencyVersion);
                    dependencyUpdated = true;
                }
            }

            if (dependencyUpdated) {
                log.info("Updating dependency to base plugin in overlay plugin to new version "
                        + baseId.getVersion());
                overlayCsConfig.write(overlayCsConfigFile);
            }
        }
    }

    // Read/Write design configuration model to ensure correct storage versions of csconfig.xml (#00003634)
    FileObject designDefinitionFile = DesignDirectory.getDesignDefinitionFile(targetFolder);
    WGADesignConfigurationModel model = new WGADesignConfigurationModel(
            new File(designDefinitionFile.getName().getPath()));
    model.saveChanges();

    // Clear the overlay status
    status.overlayWasUpgraded();

    return conflictFileCreated;

}

From source file:com.sludev.commons.vfs2.provider.azure.AzFileProviderTest.java

@Test
public void A006_testContent() throws Exception {
    String currAccountStr = testProperties.getProperty("azure.account.name");
    String currKey = testProperties.getProperty("azure.account.key");
    String currContainerStr = testProperties.getProperty("azure.test0001.container.name");
    String currHost = testProperties.getProperty("azure.host"); // <account>.blob.core.windows.net
    String currFileNameStr;//from www  .  j a va2s  . c  o  m

    DefaultFileSystemManager currMan = new DefaultFileSystemManager();
    currMan.addProvider(AzConstants.AZSBSCHEME, new AzFileProvider());
    currMan.init();

    StaticUserAuthenticator auth = new StaticUserAuthenticator("", currAccountStr, currKey);
    FileSystemOptions opts = new FileSystemOptions();
    DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth);

    currFileNameStr = "file05";
    String currUriStr = String.format("%s://%s/%s/%s", AzConstants.AZSBSCHEME, currHost, currContainerStr,
            currFileNameStr);
    FileObject currFile = currMan.resolveFile(currUriStr, opts);

    FileContent content = currFile.getContent();
    long size = content.getSize();
    Assert.assertTrue(size >= 0);

    long modTime = content.getLastModifiedTime();
    Assert.assertTrue(modTime > 0);
}