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

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

Introduction

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

Prototype

public boolean exists() throws FileSystemException;

Source Link

Document

Determines if this file exists.

Usage

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 av a 2s . c  om

        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  .j  a  v a 2s  .c o m*/
            setHeader(_response, object.getContent());
        }
    } else {
        _response.sendError(HttpServletResponse.SC_NOT_FOUND);
    }
}

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

@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
    BufferedReader bufferedReader = request.getReader();
    String line = bufferedReader.readLine();
    if (line != null) {
        response.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
        return;// w w  w.  j  a v  a 2s.  com
    }

    FileObject object = VFSBackend.resolveFile(request.getPathInfo());

    try {
        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;
    }

    if (object.exists()) {
        response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
        return;
    }

    if (!object.getParent().exists() || !FileType.FOLDER.equals(object.getParent().getType())) {
        response.sendError(HttpServletResponse.SC_CONFLICT);
        return;
    }

    try {
        object.createFolder();
        response.setStatus(HttpServletResponse.SC_CREATED);
    } catch (FileSystemException e) {
        response.sendError(HttpServletResponse.SC_FORBIDDEN);
    }
}

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

@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
    response.setHeader("DAV", "1, 2");

    String path = request.getPathInfo();
    StringBuffer options = new StringBuffer();
    FileObject object = VFSBackend.resolveFile(path);
    if (object.exists()) {
        options.append("OPTIONS, GET, HEAD, POST, DELETE, TRACE, COPY, MOVE, LOCK, UNLOCK, PROPFIND");
        if (FileType.FOLDER.equals(object.getType())) {
            options.append(", PUT");
        }/*from w  w  w . j a va2 s.c om*/
    } else {
        options.append("OPTIONS, MKCOL, PUT, LOCK");
    }
    response.setHeader("Allow", options.toString());

    // see: http://www-128.ibm.com/developerworks/rational/library/2089.html
    response.setHeader("MS-Author-Via", "DAV");
}

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

/**
 * Handle a PROPFIND request./*from w  w w  .java2  s .c o  m*/
 *
 * @param request  the servlet request
 * @param response the servlet response
 * @throws IOException if there is an error that cannot be handled normally
 */
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
    SAXReader saxReader = new SAXReader();
    try {
        Document propDoc = saxReader.read(request.getInputStream());
        logXml(propDoc);

        Element propFindEl = propDoc.getRootElement();
        for (Object propElObject : propFindEl.elements()) {
            Element propEl = (Element) propElObject;
            if (VALID_PROPFIND_TAGS.contains(propEl.getName())) {
                FileObject object = VFSBackend.resolveFile(request.getPathInfo());
                if (object.exists()) {
                    // respond as XML encoded multi status
                    response.setContentType("text/xml");
                    response.setCharacterEncoding("UTF-8");
                    response.setStatus(SC_MULTI_STATUS);

                    Document multiStatusResponse = getMultiStatusResponse(object, propEl, getBaseUrl(request),
                            getDepth(request));
                    logXml(multiStatusResponse);

                    // write the actual response
                    XMLWriter writer = new XMLWriter(response.getWriter(), OutputFormat.createCompactFormat());
                    writer.write(multiStatusResponse);
                    writer.flush();
                    writer.close();

                } else {
                    response.sendError(HttpServletResponse.SC_NOT_FOUND);
                }
                break;
            }
        }
    } catch (DocumentException e) {
        LOG.error("invalid request: " + e.getMessage());
        response.sendError(HttpServletResponse.SC_BAD_REQUEST);
    }
}

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

/**
 * Handle a PROPPATCH request./*from w w  w.j a v  a2s  .  c  om*/
 *
 * @param request  the servlet request
 * @param response the servlet response
 * @throws IOException if there is an error that cannot be handled normally
 */
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
    FileObject object = VFSBackend.resolveFile(request.getPathInfo());

    try {
        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;
    }

    if (object.exists()) {
        SAXReader saxReader = new SAXReader();
        try {
            Document propDoc = saxReader.read(request.getInputStream());
            logXml(propDoc);

            Element propUpdateEl = propDoc.getRootElement();
            List<Element> requestedProperties = new ArrayList<Element>();
            for (Object elObject : propUpdateEl.elements()) {
                Element el = (Element) elObject;
                String command = el.getName();
                if (AbstractDavResource.TAG_PROP_SET.equals(command)
                        || AbstractDavResource.TAG_PROP_REMOVE.equals(command)) {
                    for (Object propElObject : el.elements()) {
                        for (Object propNameElObject : ((Element) propElObject).elements()) {
                            Element propNameEl = (Element) propNameElObject;
                            requestedProperties.add(propNameEl);
                        }
                    }
                }
            }

            // respond as XML encoded multi status
            response.setContentType("text/xml");
            response.setCharacterEncoding("UTF-8");
            response.setStatus(SC_MULTI_STATUS);

            Document multiStatusResponse = getMultiStatusResponse(object, requestedProperties,
                    getBaseUrl(request));

            logXml(multiStatusResponse);

            // write the actual response
            XMLWriter writer = new XMLWriter(response.getWriter(), OutputFormat.createCompactFormat());
            writer.write(multiStatusResponse);
            writer.flush();
            writer.close();

        } catch (DocumentException e) {
            LOG.error("invalid request: " + e.getMessage());
            response.sendError(HttpServletResponse.SC_BAD_REQUEST);
        }
    } else {
        LOG.error(object.getName().getPath() + " NOT FOUND");
        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 {/*  w  w w. j av  a 2 s. com*/
        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.gatherdata.archiver.dao.vfs.internal.VfsArchiverDao.java

public boolean exists(URI uid) {
    boolean fileExists = false;
    try {/*from  w w  w.  j a v  a2s  .  c o m*/
        FileObject envelopeFile = fsManager.resolveFile(fsBase, uid.toASCIIString());
        fileExists = envelopeFile.exists();
    } catch (FileSystemException e) {
        e.printStackTrace();
    }
    return fileExists;
}

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

public GatherArchive retrieveEnvelope(URI uid) {
    GatherArchive foundEnvelope = null;// w  ww  .j  a v a  2s  . co  m
    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 void remove(URI uid) {
    try {//from  w ww  . j a v a  2  s .c  om
        FileObject envelopeFile = fsManager.resolveFile(fsBase, uid.toASCIIString());
        if (envelopeFile.exists()) {
            envelopeFile.delete();
        }
    } catch (FileSystemException e) {
        e.printStackTrace();
    }
}