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

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

Introduction

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

Prototype

public FileContent getContent() throws FileSystemException;

Source Link

Document

Returns this file's content.

Usage

From source file:org.eclim.util.file.FileUtils.java

/**
 * Converts the supplied byte offset in the specified file to the
 * corresponding char offset for that file using the supplied file encoding.
 *
 * @param filename The absolute path to the file.
 * @param byteOffset The byte offset to be converted.
 * @param encoding The encoding of the file.  If null, defaults to utf-8.
 *
 * @return The char offset.//from w w  w  .j  a va2s .co m
 */
public static int byteOffsetToCharOffset(String filename, int byteOffset, String encoding) throws Exception {
    FileSystemManager fsManager = VFS.getManager();
    FileObject file = fsManager.resolveFile(filename);

    return byteOffsetToCharOffset(file.getContent().getInputStream(), byteOffset, encoding);
}

From source file:org.efaps.webdav4vfs.handler.GetHandler.java

@Override()
public void service(final HttpServletRequest _request, final HttpServletResponse _response) throws IOException {
    FileObject object = VFSBackend.resolveFile(_request.getPathInfo());

    if (object.exists()) {
        if (FileType.FOLDER.equals(object.getType())) {
            _response.sendError(HttpServletResponse.SC_FORBIDDEN);
            return;
        }//from  w  w  w  .j a  va 2s.co m

        setHeader(_response, object.getContent());

        final InputStream is = object.getContent().getInputStream();
        final OutputStream os = _response.getOutputStream();
        IOUtils.copyLarge(is, os);
        is.close();
    } else {
        _response.sendError(HttpServletResponse.SC_NOT_FOUND);
    }
}

From source file:org.efaps.webdav4vfs.handler.HeadHandler.java

@Override()
public void service(final HttpServletRequest _request, final HttpServletResponse _response) throws IOException {
    FileObject object = VFSBackend.resolveFile(_request.getPathInfo());

    if (object.exists()) {
        if (FileType.FOLDER.equals(object.getType())) {
            _response.sendError(HttpServletResponse.SC_FORBIDDEN);
        } else {/*  w  w  w.  ja  v  a 2  s  .c om*/
            setHeader(_response, object.getContent());
        }
    } else {
        _response.sendError(HttpServletResponse.SC_NOT_FOUND);
    }
}

From source file:org.efaps.webdav4vfs.handler.PutHandler.java

@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
    FileObject object = VFSBackend.resolveFile(request.getPathInfo());

    try {//from  ww w.  ja va  2s.c o  m
        if (!LockManager.getInstance().evaluateCondition(object, getIf(request)).result) {
            response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
            return;
        }
    } catch (LockException e) {
        response.sendError(SC_LOCKED);
        return;
    } catch (ParseException e) {
        response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
        return;
    }
    // it is forbidden to write data on a folder
    if (object.exists() && FileType.FOLDER.equals(object.getType())) {
        response.sendError(HttpServletResponse.SC_FORBIDDEN);
        return;
    }

    FileObject parent = object.getParent();
    if (!parent.exists()) {
        response.sendError(HttpServletResponse.SC_FORBIDDEN);
        return;
    }

    if (!FileType.FOLDER.equals(parent.getType())) {
        response.sendError(HttpServletResponse.SC_CONFLICT);
        return;
    }

    InputStream is = request.getInputStream();
    OutputStream os = object.getContent().getOutputStream();
    long bytesCopied = IOUtils.copyLarge(is, os);
    String contentLengthHeader = request.getHeader("Content-length");
    LOG.debug(String.format("sent %d/%s bytes", bytesCopied,
            contentLengthHeader == null ? "unknown" : contentLengthHeader));
    os.flush();
    object.close();

    response.setStatus(HttpServletResponse.SC_CREATED);
}

From source file:org.efaps.webdav4vfs.test.ramvfs.RamFileSystem.java

/**
 * Import the given file with the name relative to the given root.
 *
 * @param _fo       file object/*from   w  w  w  .ja  va  2  s  .c  om*/
 * @param _root     root file object
 * @throws FileSystemException if file object could not be imported
 */
void toRamFileObject(final FileObject _fo, final FileObject _root) throws FileSystemException {
    final RamFileObject memFo = (RamFileObject) this
            .resolveFile(_fo.getName().getPath().substring(_root.getName().getPath().length()));
    if (_fo.getType().hasChildren()) {
        // Create Folder
        memFo.createFolder();
        // Import recursively
        final FileObject[] fos = _fo.getChildren();
        for (int i = 0; i < fos.length; i++) {
            final FileObject child = fos[i];
            this.toRamFileObject(child, _root);
        }
    } else if (_fo.getType().equals(FileType.FILE)) {
        // Read bytes
        try {
            final InputStream is = _fo.getContent().getInputStream();
            try {
                final OutputStream os = new BufferedOutputStream(memFo.getOutputStream(), 512);
                int i;
                while ((i = is.read()) != -1) {
                    os.write(i);
                }
                os.flush();
                os.close();
            } finally {
                try {
                    is.close();
                } catch (final IOException e) {
                    // ignore on close exception
                }
            }
        } catch (final IOException e) {
            throw new FileSystemException(e.getClass().getName() + " " + e.getMessage());
        }
    } else {
        throw new FileSystemException("File is not a folder nor a file " + memFo);
    }
}

From source file:org.efaps.webdav4vfs.util.Util.java

/**
 *
 * @param _object//  w w w .j  a  va2  s  .c o  m
 * @return
 */
public static String getETag(final FileObject _object) {
    final String fileName = _object.getName().getPath();
    String lastModified = "";
    try {
        lastModified = String.valueOf(_object.getContent().getLastModifiedTime());
    } catch (final FileSystemException e) {
        // ignore error here
    }
    return DigestUtils.shaHex(fileName + lastModified);
}

From source file:org.gatherdata.archiver.dao.vfs.internal.VfsArchiverDao.java

public GatherArchive retrieveEnvelope(URI uid) {
    GatherArchive foundEnvelope = null;//from w ww.jav a 2s  .  c om
    try {
        FileObject envelopeFile = fsManager.resolveFile(fsBase, uid.toASCIIString());
        if (envelopeFile.exists()) {
            foundEnvelope = (GatherArchive) SerializationUtils
                    .deserialize(envelopeFile.getContent().getInputStream());
        }
    } catch (FileSystemException e) {
        e.printStackTrace();
    }
    return foundEnvelope;
}

From source file:org.gatherdata.archiver.dao.vfs.internal.VfsArchiverDao.java

public List<GatherArchive> getAll() {
    List<GatherArchive> allEnvelopes = new ArrayList<GatherArchive>();
    try {//w  w w.j  a va 2s . c o  m
        for (FileObject envelopeFile : fsBase.getChildren()) {
            allEnvelopes.add(
                    (GatherArchive) SerializationUtils.deserialize(envelopeFile.getContent().getInputStream()));
        }
    } catch (FileSystemException e) {
        e.printStackTrace();
    }
    return allEnvelopes;
}

From source file:org.gatherdata.archiver.dao.vfs.internal.VfsArchiverDao.java

public GatherArchive save(GatherArchive envelopeToSave) {
    try {/*from www .jav  a 2s  . c om*/
        FileObject envelopeFile = fsManager.resolveFile(fsBase, envelopeToSave.getUid().toASCIIString());
        if (envelopeFile.exists()) {
            envelopeFile.delete();
        }
        envelopeFile.createFile();
        SerializationUtils.serialize(envelopeToSave, envelopeFile.getContent().getOutputStream());
    } catch (FileSystemException e) {
        e.printStackTrace();
    }

    return envelopeToSave;
}

From source file:org.jahia.services.content.impl.external.vfs.VFSDataSource.java

private ExternalData getFile(FileObject fileObject) throws FileSystemException {
    String identifier = fileObject.getURL().toString();
    String type;/*from   www.j av  a2 s .  c om*/

    type = getDataType(fileObject);

    Map<String, String[]> properties = new HashMap<String, String[]>();
    if (fileObject.getContent() != null) {
        long lastModifiedTime = fileObject.getContent().getLastModifiedTime();
        if (lastModifiedTime > 0) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(lastModifiedTime);
            String[] timestampt = new String[] { ISO8601.format(calendar) };
            properties.put(Constants.JCR_CREATED, timestampt);
            properties.put(Constants.JCR_LASTMODIFIED, timestampt);
        }
    }

    String path = fileObject.getName().getPath().substring(rootPath.length());
    if (!path.startsWith("/")) {
        path = "/" + path;
    }

    return new ExternalData(identifier, path, type, properties);
}